<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>refs</title>
</head>
<body>
    <div id="test1"></div>
    <script src="../../17之前版本/react.development.js"></script>
    <script src="../../17之前版本/react-dom.development.js"></script>
    <script src="../../17之前版本/prop-types.js"></script>
    <script src="../../17之前版本/babel.min.js"></script>

    <script type="text/babel">
        class Demo extends React.Component{
            /*
                1) 通过onXxx属性指定事件处理函数（注意大小写）
                    a. React使用的是自定义（合成）事件，而不是使用的原生DOM事件  ----- 为了更好的兼容性
                    b. React中的事件是通过事件委托方式处理的（委托给组件最外层的元素） ----- 为了更高效
                2) 通过event.target得到发生事件的DOM元素对象  ---- 不要过度的使用ref
            */
            // React.createRef调用后可以返回应该容器，该容器可以存储被ref所标识的节点
            myRef = React.createRef()
            showData=()=>{
                const { current } = this.myRef
                alert(current.value)
            }
            unFocus = (event) =>{
                alert(event.target.value)
            }
            render(){
                return (
                    <div> 
                        <input ref={this.myRef} type="text" />
                        <button onClick={this.showData}>点我提示</button>
                        <input onBlur={this.unFocus} type="text" />
                    </div>
                )
            }
        }
        ReactDOM.render(<Demo/>,document.getElementById('test1'))
    </script>
</body>
</html>